package QC.MessageBox.common;

import io.vertx.core.json.JsonObject;
import java.util.Random;

/**
 * Created by Andaren on 2017/4/11.
 * Used for: 系统常量
 */
public class Constants {

    public Constants() {

    }

    /*********************************************************************************
     * 推送来源类型
     * *******************************************************************************
     */
    // 微信
    public static final Integer PUSH_MSG_CHANNEL_TYPE_WECHAT = 0;
    // 微博
    public static final Integer PUSH_MSG_CHANNEL_TYPE_WEIBO = 1;
    // 网页
    public static final Integer PUSH_MSG_CHANNEL_TYPE_NET = 2;

    /*********************************************************************************
     * 消息类型
     * *******************************************************************************
     */
    // 文本消息
    public static final String WX_MSG_TYPE_TEXT = "text";
    // 图片消息
    public static final String WX_MSG_TYPE_IMAGE = "image";
    // 事件消息
    public static final String WX_MSG_TYPE_EVENT = "event";
    // 事件消息：点击事件
    public static final String WX_MSG_TYPE_EVENT_CLICK = "CLICK";
    // 事件消息：跳转事件
    public static final String WX_MSG_TYPE_EVENT_VIEW = "VIEW";
    // 事件消息：关注事件
    public static final String WX_MSG_TYPE_EVENT_SUBSCRIBE = "subscribe";
    // 事件消息：取消关注事件
    public static final String WX_MSG_TYPE_EVENT_UNSUBSCRIBE = "unsubscribe";


    /*********************************************************************************
     * 微信接口
     * *******************************************************************************
     */
    // 微信接口请求Host
    public static String WX_INTERFACE_HOST = "qzwxtalk.qzlife.net";// "120.25.88.91";//"api.weixin.qq.com";
    // 微信接口请求Port
    public static Integer WX_INTERFACE_SSLPORT = 80;//8584;// 443;
    // 微信接口请求port(默认https协议端口)

    /**
     * 为了测试微信中心平台系统的可用性，暂时修改为8584，原来为443
     *      测试结束后，修改所有微信接口为https请求，暂时都是http请求
     */
    public static String WX_INTERFACE_HOST_PROXY = "https://api.weixin.qq.com";//"http://192.168.8.125:80";//"http://120.25.88.91:8584";//"api.weixin.qq.com";


    /*********************************************************************************
     * 微博接口
     * *******************************************************************************
     */
    // 微信接口请求Host
    public static final String WB_INTERFACE_HOST = "api.weibo.com";
    public static final String WB_INTERFACE_HOST_M = "m.api.weibo.com";
    // 微信接口请求Port
    public static Integer WB_INTERFACE_SSLPORT = 443;

    //微博图片查看请求地址
    public static String WB_IMAGE_URI_PRIFIX = "https://upload.api.weibo.com/2/mss/msget";


    /*********************************************************************************
     * 融云接口
     * *******************************************************************************
     */
    // 融云接口请求Host
    public static final String RC_INTERFACE_HOST = "api.cn.ronghub.com";
    // 融云接口请求port
    public static final Integer RC_INTERFACE_PORT = 80;
    // 融云应用appKey
    public static final String RC_APP_APPKEY = "e5t4ouvptwqfa";
    public static final String RC_APP_APPKEY_TEST = "0vnjpoadn2gwz";
    // 融云应用appSecret
    public static final String RC_APP_SECRET = "71S69gcAxxJw";
    public static final String RC_APP_SECRET_TEST = "0uxET2gW8QBf";

    // 请求token地址uri
    public static final String RC_INTERFACE_URI_TOKEN = "/user/getToken.json";
    // 发送单聊消息uri
    public static final String RC_INTERFACE_URI_SINGLEMSG = "/message/private/publish.json";

    /*********************************************************************************
     * app后台接口
     * *******************************************************************************
     */
    // app后台请求Host
    public static final String APPBACK_INTERFACE_HOST = "app.quanzilife.net";
    // app后台请求Host(测试环境)
    public static final String APPBACK_INTERFACE_HOST_TEST = "bs.quanzilife.net";//"test-bs.quanzilife.net";//"app.dgqc-tech.com";
    // app后台请求port
    public static final Integer APPBACK_INTERFACE_PORT = 80;
    // app后台请求port(测试环境)
    public static final Integer APPBACK_INTERFACE_PORT_TEST = 80;
    // app后台获取所有公众号uri
    public static final String APPBACK_INTERFACE_URI_ALL_PUBLIC = "/icircle/getallpublicnuminfolist.do";
    // app后台获得公众号下一个客服信息
    public static final String APPBACK_INTERFACE_URI_CS = "/icircle/getcustservicelistbydevelopid.do";
    // 发送新一个微信用户给app后台
    public static final String APPBACK_INTERFACE_URI_NEW_APPUSER = "/icircle/receivewechatinfo.do";
    // 获取特定客服的欢迎语
    public static final String APPBACK_INTERFACE_URI_CS_GREETING = "/icircle/getcsgreeting.do";
    // 用户取消关注
    public static final String APPBACK_INTERFACE_URI_UNSUBCRIBE = "/icircle/wxuserunsubscribe.do";
    // 请求所有客服列表
    public static final String APPBACK_INTERFACE_URI_ALL_CS = "/icircle/getallcustservice.do";
    // 发送历史聊天记录到app后台
    public static final String APPBACK_INTERFACE_URI_HISTORY_MSGRECORD = "/icircle/gethistorymsgrecords.do";
    // 请求 微官网信息 数据
    public static final String APPBACK_INTERFACE_URI_MICROWEBSITE = "/icircle/getmicrowebsite.do";
    // 发送自定义菜单轨迹到app后台
    public static final String APPBACK_INTERFACE_URI_USER_TRACK = "/icircle/postusertrack.do";



    /*********************************************************************************
     * 平台公用接口调用变量
     * *******************************************************************************
     */
    // 所有微信公众平台公用一个Token
    public static final String TOKEN = "cnitrmall";
    // 所有微信公众平台公用一个消息加密密钥
    public static final String ENCODINGAESKEY = "ELZTqhVSpb7wFSmaGtTuC0maNmkoxRUVRSF0v1Jpmyd";
    // 认证类型
    public static final String GRANT_TYPE = "client_credential";
    // 请求的失效时间
    public static final Long REQUEST_TIMEOUT = 5000L;

    // redis数据缓存时间
    public static final Integer REDIS_CACHE_MAX_TIME = 7 * 24 * 60 * 60;

    // 平台网页认证域名
    public static final String WEB_AUTHEN_HOST = "www.quanzilife.cn";

    // 负责平台网页解析的公众号AppId
    public static final String WEB_AUTHEN_APPID = "wx5ad7079b9b0d9d8d";



    /**
     * 生成[0-size)中的随机数
     * @param size
     * @return
     */
    public static Integer getRandomInt(int size) {
        Random random = new Random(System.nanoTime());
        // 生成[0-size)中的随机数
        return random.nextInt(size);
    }

    /**
     * 一般消息的调用成功返回
     * @return
     */
    public static String successResult() {
        return new JsonObject()
                .put("result", 1)
                .encodePrettily();
    }

    /**
     * 一般消息的调用失败返回
     * @return
     */
    public static String failedResult(String error) {
        return new JsonObject()
                .put("result", 0)
                .put("error", error)
                .encodePrettily();
    }

}
